package com.tjy.farmer.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tjy.common.annotation.Excel;
import com.tjy.common.core.domain.BaseEntity;

/**
 * 蜂农定位信息，存储蜂农的地理位置信息及定位时间对象 tb_farmer_location_info
 * 
 * @author tjy
 * @date 2025-09-05
 */
public class FarmerLocationInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 蜂农定位信息主键ID */
    private Long id;

    /** 蜂农ID，关联tb_farmer_info表的id */
    @Excel(name = "蜂农ID，关联tb_farmer_info表的id")
    private Long farmerId;

    /** 所在养蜂区域ID，关联tb_bee_area_info表的id */
    @Excel(name = "所在养蜂区域ID，关联tb_bee_area_info表的id")
    private Long areaId;

    /** 经度 */
    private BigDecimal longitude;

    /** 纬度 */
    private BigDecimal latitude;

    /** 定位时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "定位时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date locationTime;

    /** 是否在规划点内（1是，0否） */
    @Excel(name = "是否在规划点内", readConverterExp = "1=是，0否")
    private Integer isInPlan;

    /** 定位备注 */
    @Excel(name = "定位备注")
    private String locationRemark;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setFarmerId(Long farmerId) 
    {
        this.farmerId = farmerId;
    }

    public Long getFarmerId() 
    {
        return farmerId;
    }

    public void setAreaId(Long areaId) 
    {
        this.areaId = areaId;
    }

    public Long getAreaId() 
    {
        return areaId;
    }

    public void setLongitude(BigDecimal longitude) 
    {
        this.longitude = longitude;
    }

    public BigDecimal getLongitude() 
    {
        return longitude;
    }

    public void setLatitude(BigDecimal latitude) 
    {
        this.latitude = latitude;
    }

    public BigDecimal getLatitude() 
    {
        return latitude;
    }

    public void setLocationTime(Date locationTime) 
    {
        this.locationTime = locationTime;
    }

    public Date getLocationTime() 
    {
        return locationTime;
    }

    public void setIsInPlan(Integer isInPlan) 
    {
        this.isInPlan = isInPlan;
    }

    public Integer getIsInPlan() 
    {
        return isInPlan;
    }

    public void setLocationRemark(String locationRemark) 
    {
        this.locationRemark = locationRemark;
    }

    public String getLocationRemark() 
    {
        return locationRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("farmerId", getFarmerId())
            .append("areaId", getAreaId())
            .append("longitude", getLongitude())
            .append("latitude", getLatitude())
            .append("locationTime", getLocationTime())
            .append("isInPlan", getIsInPlan())
            .append("locationRemark", getLocationRemark())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
